package com.yxq.mdt.app.net;

import android.text.TextUtils;

import java.io.IOException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;

/**
 * @描述 API调用方法实现
 * @作者 yd
 * @创建日期 2019/8/27 0027 15:10
 */
public class ApiModel {

    /**
     * 请求回调
     */
    public interface CommonCallback<T> {
        void onSuccess(T t);

        void onError(String errMsg);
    }

    private static void handleError(CommonCallback callback, String errorStr) {
        if (!TextUtils.isEmpty(errorStr)) {
            callback.onError(errorStr);
        }
    }

    /**
     * 所有接口用一个异常处理
     */
    private static void handleError(CommonCallback callback, Throwable e) {
        if (e instanceof UnknownHostException) {
            handleError(callback, "网络异常");
        } else if (e instanceof SocketTimeoutException) {
            handleError(callback, "网络连接超时");
        } else if (e instanceof IOException) {
            handleError(callback, "服务器连接异常");
        } else {
            handleError(callback, e.getMessage());
        }
    }
}
